<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style src="../css/common.css"></style>
  <style>
    .container {
      width: 400px;
      height: 220px;
      border: 1px solid #000;
    }

    .box1 {
      position: absolute;
      width: 200px;
      height: 200px;
      top: 0;
      left: 100px;
      background-color: blue;
    }

    .box2 {
      position: absolute;
      width: 200px;
      height: 200px;
      top: 0;
      left: 150px;
      background-color: yellow;
    }

    .relative {
      position: relative;
      width: 200px;
      height: 200px;
      background-color: pink;
      z-index: 1;
    }

    /* 相对定位 */
    /* .box1 {
      position: relative;
      top: 0;
      left: 0;
      width: 200px;
      height: 200px;
      background-color: blue;
    }

    .box2 {
      position: relative;
      top: -200px;
      left: 200px;
      width: 200px;
      height: 200px;
      background-color: yellow;
    } */
  </style>
</head>

<body>
  <script>
    /*
      1. 定位
        - left/right/top/bottom 位置值
        - left > right
        - top > bottom
      2. relative
        - 相对于元素本身位置进行定位
        - 保留原有自身的位置，只是视觉上的移走了
      3. absolute
        - 相对于父级有定位的元素位置进行定位
        - 没有父级有定位的元素时相对于body进行定位
        - 没有设置left时，默认为父元素左边，没有设置top时，默认为父元素上边。
        默认情况下后面的元素会压在前面的元素上面，可通过z-index调整层级

      4. z-index
      - 必须在定位下才能使用(除了默认定位)
      - 默认为0，后面的会压住前面的
      - 定位元素 > 普通元素
        - 定位元素间层级默认情况下取决于先后顺序，后 > 前
        - 非默认情况下取决于z-index值
      5. fixed
        - 相对于窗口进行定位
      6. static
        - 默认定位
        - 可用于去掉其他定位
    */
  </script>
  <div class="container">
    <div class="relative"></div>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
    <!-- <div class="box1"></div>
    <div class="box2"></div> -->
  </div>
</body>

</html>